package com.shaozi.nc.data.model;

import java.util.List;
import java.util.Map;

import org.springframework.data.mongodb.core.mapping.Document;

import com.shaozi.data.mongo.model.ModelBase;
import com.shaozi.data.mq.business.bean.MqTargetUserBean;
import com.shaozi.nc.mq.bean.base.CommonExtraBean;

/**
 * 小秘书
 * 
 * @author xueshuwu
 *
 */
@Document(collection = "nc_secretary")
public class SecretaryModel extends ModelBase {

	/**
	 * 
	 */
	private static final long serialVersionUID = -5570739960718746127L;

	/**
	 * 推送且保存
	 */
	public static final int PushType_Need_Save = 1;
	/**
	 * 不推送,保存
	 */
	public static final int PushType_NoNeed_Save = 2;
	/**
	 * 推送,不保存
	 */
	public static final int PushType_Need_NoSave = 3;
	/**
	 * 不推送，不保存
	 */
	public static final int PushType_NoNeed_NOSAVE = 4;

	public static final int NotifyType_Both = 0;
	/**
	 * 提醒
	 */
	public static final int NotifyType_Remind = 1;
	/**
	 * 通知
	 */
	public static final int NotifyType_Inform = 2;
	/**
	 * 数据简报
	 */
	public static final int NotifyType_BriefReport = 3;
	/**
	 * 运营咨询
	 */
	public static final int NotifyType_Operation = 4;
	/**
	 * 发给原所有者
	 */
	public static final int ToNewOwner_Old = 0;

	/**
	 * 发给新所有者
	 */
	public static final int ToNewOwner_New = 1;

	/**
	 * 大类
	 */
	private Integer type;
	/**
	 * 小类
	 */
	public final static String FIELDNAME_sourceType = "sourceType";
	private Integer sourceType;
	private Integer pushType;

	/**
	 * 提醒，通知类型
	 */
	private Integer notifyType;

	private String companyId;
	/**
	 * 触发该消息的用户ID
	 */
	private String triggerUserId;
	private String fromUserId;
	private String title;
	private String content;

	public final static String FIELDNAME_users = "users";
	private List<MqTargetUserBean> users;
	private Map<String, Object> titleEvalVariables;
	private Map<String, Object> contentEvalVariables;
	/**
	 * json 格式的其他附加消息
	 */
	private String extra;
	public final static String FIELDNAME_extraBean = "extraBean";
	private CommonExtraBean extraBean;
	private Integer isDebug;

	private Long updateTime;
	private Integer isDel;
	private Long delTime = 0l;
	public final static String FIELDNAME_createTime = "createTime";
	private Long createTime;
	/**
	 * mq收到消息的时间
	 */
	private Long mqTime;
	/**
	 * 触发时间
	 */
	private Long triggerTime;
	/**
	 * 声音
	 */
	private String sound;

	private String uuid;

	public SecretaryModel() {

	}

	public Integer getType() {
		return type;
	}

	public void setType(Integer type) {
		this.type = type;
	}

	public Integer getSourceType() {
		return sourceType;
	}

	public void setSourceType(Integer sourceType) {
		this.sourceType = sourceType;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}

	public List<MqTargetUserBean> getUsers() {
		return users;
	}

	public void setUsers(List<MqTargetUserBean> users) {
		this.users = users;
	}

	public Long getUpdateTime() {
		return updateTime;
	}

	public void setUpdateTime(Long updateTime) {
		this.updateTime = updateTime;
	}

	public Integer getIsDel() {
		return isDel;
	}

	public void setIsDel(Integer isDel) {
		this.isDel = isDel;
	}

	public Long getDelTime() {
		return delTime;
	}

	public void setDelTime(Long delTime) {
		this.delTime = delTime;
	}

	public Long getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Long createTime) {
		this.createTime = createTime;
	}

	public String getExtra() {
		return extra;
	}

	public void setExtra(String extra) {
		this.extra = extra;
	}

	public String getCompanyId() {
		return companyId;
	}

	public void setCompanyId(String companyId) {
		this.companyId = companyId;
	}

	public String getFromUserId() {
		return fromUserId;
	}

	public void setFromUserId(String fromUserId) {
		this.fromUserId = fromUserId;
	}

	public Map<String, Object> getTitleEvalVariables() {
		return titleEvalVariables;
	}

	public void setTitleEvalVariables(Map<String, Object> titleEvalVariables) {
		this.titleEvalVariables = titleEvalVariables;
	}

	public Map<String, Object> getContentEvalVariables() {
		return contentEvalVariables;
	}

	public void setContentEvalVariables(Map<String, Object> contentEvalVariables) {
		this.contentEvalVariables = contentEvalVariables;
	}

	public Integer getPushType() {
		return pushType;
	}

	public void setPushType(Integer pushType) {
		this.pushType = pushType;
	}

	public Integer getNotifyType() {
		return notifyType;
	}

	public void setNotifyType(Integer notifyType) {
		this.notifyType = notifyType;
	}

	public String getTriggerUserId() {
		return triggerUserId;
	}

	public void setTriggerUserId(String triggerUserId) {
		this.triggerUserId = triggerUserId;
	}

	public Long getTriggerTime() {
		return triggerTime;
	}

	public void setTriggerTime(Long triggerTime) {
		this.triggerTime = triggerTime;
	}

	public Long getMqTime() {
		return mqTime;
	}

	public void setMqTime(Long mqTime) {
		this.mqTime = mqTime;
	}

	public Integer getIsDebug() {
		return isDebug;
	}

	public void setIsDebug(Integer isDebug) {
		this.isDebug = isDebug;
	}

	public CommonExtraBean getExtraBean() {
		return extraBean;
	}

	public void setExtraBean(CommonExtraBean extraBean) {
		this.extraBean = extraBean;
	}

	public String getSound() {
		return sound;
	}

	public void setSound(String sound) {
		this.sound = sound;
	}

	public String getUuid() {
		return uuid;
	}

	public void setUuid(String uuid) {
		this.uuid = uuid;
	}

}
